//  javascript 对象的规则描述语言和验证器  
//  验证创建用户规则

const { User , ValidateUser} = require('../../model/user')
//  定义对象验证规则
module.exports = async (req, res, next) => {
  
    try {
        await ValidateUser(req.body);
    } catch (e) {
        // 验证没有通过重新定向到用户添加页面 再打印出错误信息
        // res.redirect(`/admin/user-edit?message=${e.message}`);
        // JSON.stringify  将对象转换为字符串  利用express中间键处理这个报错
        return next(JSON.stringify({path:'/admin/user-edit', message:e.message}));
    }
    // 根据邮箱地址查询邮箱是否存在
    let user = await User.findOne({email:req.body.email});
    if(user) {
        // return res.redirect(`/admin/user-edit?message=用户邮箱已被注册~`);
        return next(JSON.stringify({path:'/admin/user-edit', message:'用户邮箱已被注册'}));
    }
    // 将 用户集合添加到数据库，并重新定向到user页面
    User.create(req.body);
    res.redirect('/admin/user')
}